package Prototype;

public abstract class Shape implements Cloneable{

    private String id;
    protected String type;  //

    abstract void draw(); // 抽象方法无实现体, 子类重写该 抽象方法.


    public Object clone(){
        Object clone = null;
        try {
            clone = super.clone();
            /*
             ctrl + alt + T : 将语句块抽出来. 与QQ 热键占用 . 调用父对象的clone()方法
             被子类继承之后,就相当于调用的 父类型 Shape
             */
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }

        return clone;
    }


    public String getId() {
        return id;
    }
    public void setId(String id) {  // 设置属性的时候, 指定 this.attribute = xxx .
        this.id = id;
    }
    public String getType() {
        return type;
    }


}
